home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / firiir.arc / IIR4PAR.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-08-15  |  3.8 KB  |  206 lines

  1. ************************************************************
  2. *
  3. *               FOURTH-ORDER IIR
  4. *            ELLIPTIC LOWPASS FILTER
  5. *
  6. *              PARALLEL STRUCTURE
  7. *
  8. *            FILTER CHARACTERISTICS
  9. *
  10. *    SAMPLING FREQUENCY = 10 KHZ
  11. *
  12. *                 BAND 1      BAND 2
  13. *
  14. *    LOWER BAND EDGE     0.00000     2.75000
  15. *    UPPER BAND EDGE     2.50000     5.00000
  16. *    NOMINAL GAIN        1.00000     0.00000
  17. *    NOMINAL RIPPLE        0.06000     0.06000
  18. *    MAXIMUM RIPPLE        0.05617     0.05514
  19. *    RIPPLE IN DB        0.47469       -25.17089
  20. *
  21. *
  22. *              FILTER STRUCTURE
  23. *
  24. *                  C
  25. *        +----------------->-----------------+
  26. *        |                    |
  27. *        ^                g      p (n) v
  28. *        |                 01    1    |
  29. *   o--->---o--->---o---->----o---->----o--->---o--->---o
  30. *   x(n)    |        |          |  -1    |    |    y(n)
  31. *        |        ^     a    v z   g    ^    |
  32. *        |        |      11  |      11 |    |
  33. *        |        o----<----o---->----o    |
  34. *        |        |          |  -1        |
  35. *        |        ^     a    v z        |
  36. *        v        |      21  |         ^
  37. *        |        o----<----o         |
  38. *        |                    |
  39. *        |                    |
  40. *        |                g      p (n) |
  41. *        |                 02    2    |
  42. *        +--->---o---->----o---->----o--->---+
  43. *            |          |  -1    |
  44. *            ^     a    v z   g    ^
  45. *            |      12  |      12 |
  46. *            o----<----o---->----o
  47. *            |          |  -1
  48. *            ^     a    v z
  49. *            |      22  |
  50. *            o----<----o
  51. *
  52. *
  53. ************************************************************
  54. *
  55. *   CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
  56. *       | (MICROSECONDS) |      (WORDS)    |     (WORDS)
  57. *   -------|----------------|----------------|------------
  58. *       |            |             |
  59. *     28   |      5.6        |        28         |       18
  60. *       |            |             |
  61. *   ------------------------------------------------------
  62. *
  63. *   (EXCLUDING I/O AND INITIALIZATION)
  64. *
  65. ************************************************************
  66. *
  67. *
  68.     IDT 'IIR4PAR'
  69. D2N    EQU 0
  70. D2NM1    EQU 1
  71. D2NM2    EQU 2
  72. D1N    EQU 3
  73. D1NM1    EQU 4
  74. D1NM2    EQU 5
  75. *
  76. G01    EQU 6
  77. G11    EQU 7
  78. *
  79. A11    EQU 8
  80. A21    EQU 9
  81. *
  82. G02    EQU 10
  83. G12    EQU 11
  84. *
  85. A12    EQU 12
  86. A22    EQU 13
  87. *
  88. C    EQU 14
  89. *
  90. MODE    EQU 15
  91. CLOCK    EQU 16
  92. YN    EQU 17
  93. XN    EQU 18
  94. ONE    EQU 19
  95. P1    EQU 20
  96. *
  97.     AORG 0
  98. *
  99.     B START
  100. *
  101. * COEFFICIENTS ARE INITIALLY *
  102. * STORED IN PROGRAM MEMORY   *
  103. *
  104. *
  105. CG01    DATA >C750    * -0.4428446 *
  106. CG11    DATA >5F2C    *  0.7435591 *
  107. *
  108. CA11    DATA >394D    *  0.447687 *
  109. CA21    DATA >D889    *  0.308310 *
  110. *
  111. CG02    DATA >F721    * -0.0693031 *
  112. CG12    DATA >EFAE    * -0.1274959 *
  113. *
  114. CA12    DATA >FEF7    * -0.008080 *
  115. CA22    DATA >90EE    * -0.867723 *
  116. *
  117. CC    DATA >5988    *  0.699476 *
  118. *
  119. MD    DATA    >000A
  120. SMP    DATA    >01F3    * SAMPLING RATE OF 10 KHZ *
  121. *
  122. START    LDPK 0
  123. *
  124.     LACK 1
  125.     SACL ONE    * CONTENT OF ONE IS 1 *
  126. *
  127.     LARK AR0,CLOCK    * THIS SECTION OF CODE LOADS  *
  128.     LARK AR1,10    * THE FILTER COEFFICIENTS AND *
  129.     LACK SMP    * OTHER VALUES FROM PROGRAM   *
  130. LOAD    LARP AR0    * MEMORY TO DATA MEMORY       *
  131.     TBLR *-,AR1
  132.     SUB ONE
  133.     BANZ LOAD
  134. *
  135.     ZAC        * THIS SECTION SETS THE *
  136.     SACL D2N    * INITIAL STATE OF THE    *
  137.     SACL D2NM1    * FILTER TO ZERO    *
  138.     SACL D2NM2
  139.     SACL D1N
  140.     SACL D1NM1
  141.     SACL D1NM2
  142. *
  143.     OUT MODE,PA0    * INITIALIZATION OF ANALOG *
  144.     OUT CLOCK,PA1    * INTERFACE BOARD       *
  145. *
  146. WAIT    BIOZ NXTPT    * BIO PIN GOES LOW WHEN A *
  147.     B WAIT        * NEW SAMPLE IS AVAILABLE *
  148. *
  149. NXTPT    IN XN,PA2    * BRING IN THE NEW SAMPLE XN *
  150. *
  151.     LAC XN,15    * START FIRST PARALLEL SECTION *
  152. *
  153.     LT D1NM2
  154.     MPY A21     * d (n-2) * a    *
  155. *               1         21
  156.     LTD D1NM1
  157.     MPY A11
  158. *
  159.     APAC
  160. *
  161.     SACH D1N,1
  162. *
  163.     ZAC
  164. *
  165.     MPY G11
  166. *
  167.     LTD D1N
  168.     MPY G01
  169. *
  170.     APAC
  171. *
  172.     SACH P1,1    * FINISHED FIRST PARALLEL SECTION *
  173. *
  174.     LAC XN,15    * START SECOND PARALLEL SECTION *
  175. *
  176.     LT D2NM2
  177.     MPY A22     * d (n-2) * a    *
  178. *               2         22
  179.     LTD D2NM1
  180.     MPY A12
  181. *
  182.     APAC
  183. *
  184.     SACH D2N,1
  185. *
  186.     LAC P1,15
  187. *
  188.     MPY G12
  189. *
  190.     LTD D2N
  191.     MPY G02
  192. *
  193.     LTA C
  194.     MPY XN
  195. *
  196.     APAC
  197. *
  198.     SACH YN,1    * FINISHED SECOND PARALLEL SECTION *
  199. *            * AND FINISHED FILTER           *
  200. *
  201.     OUT YN,PA2    * OUTPUT THE FILTER RESPONSE y(n) *
  202. *
  203.     B WAIT        * GO GET THE NEXT POINT *
  204. *
  205.     END
  206.